MTF SqzMom [tradeviZion]Credits:
John Carter for creating the TTM Squeeze and TTM Squeeze Pro.
Lazybear for the original interpretation of the TTM Squeeze: Squeeze Momentum Indicator.
Makit0 for evolving Lazybear's script by incorporating TTM Squeeze Pro upgrades – Squeeze PRO Arrows.
MTF SqzMom - Multi-Timeframe Squeeze & Momentum Tool
MTF SqzMom is a tool designed to help traders easily monitor squeeze and momentum signals across multiple timeframes in a simple, organized format. Built using Pine Script 5, it ensures that data remains consistent, even when switching between different time intervals on the chart.
Key Features:
Multi-Timeframe Monitoring: Track squeeze and momentum signals across various timeframes, all in one view. This includes key timeframes like 1-minute, 5-minute, hourly, and daily.
Dynamic Table Display: A color-coded table that automatically adjusts based on the selected timeframes, offering a clear view of market conditions.
Alerts for Key Market Events: Get notifications when a squeeze starts or fires across your chosen timeframes, so you can stay informed without needing to monitor the chart continuously.
Customizable Appearance: Tailor the look of the table by selecting colors for squeeze levels and momentum shifts, and choose the best position on your chart for easy access.
How It Works:
MTF SqzMom is based on the concept of the squeeze, which signals periods of lower volatility where price breakouts may occur. The tool tracks this by monitoring the contraction of Bollinger Bands within Keltner Channels. Along with this, it provides momentum analysis to help you gauge the potential direction of the market after a squeeze.
Squeeze Conditions: The script tracks four levels of squeeze conditions (no squeeze, low, mid, and high), each represented by a different color in the table.
Momentum Analysis: Momentum is visually represented by colors indicating four stages: up increasing, up decreasing, down increasing, and down decreasing. This color coding helps you quickly assess whether the market is gaining or losing momentum.
Using Alerts:
You can enable two types of alerts: when a squeeze starts (indicating consolidation) and when a squeeze fires (indicating a breakout). These alerts cover all timeframes you’ve selected, so you never miss important signals.
How to Set It Up:
1. Enable Alerts in Settings: Turn on "Alert for Squeeze Start" and "Alert for Squeeze Fire" in the settings.
2. Add Alerts to Your Chart:
Click the three dots next to the indicator name.
Select "Add alert on tradeviZion - MTF SqzMom."
3. Customize and Save: Adjust alert options, choose your notification type, and click "Create."
Why Use MTF SqzMom ?
Consistent Data: The tool ensures that squeeze and momentum data remain consistent, even when you switch between chart intervals.
Real-Time Alerts: Stay updated with alerts for squeeze conditions without needing to constantly watch the chart.
Simple to Use, Customizable to Fit: You can easily adjust the table’s look and choose the timeframes and colors that best suit your trading style.
Acknowledgment:
While this tool builds on the TTM Squeeze concept developed by John Carter of Simpler Trading, it offers added flexibility through multi-timeframe analysis, alerts, and customizability to make monitoring market conditions more accessible.
" TABLE "に関するスクリプトを検索
Portfolio Index Generator [By MUQWISHI]▋ INTRODUCTION:
The “Portfolio Index Generator” simplifies the process of building a custom portfolio management index, allowing investors to input a list of preferred holdings from global securities and customize the initial investment weight of each security. Furthermore, it includes an option for rebalancing by adjusting the weights of assets to maintain a desired level of asset allocation. The tool serves as a comprehensive approach for tracking portfolio performance, conducting research, and analyzing specific aspects of portfolio investment. The output includes an index value, a table of holdings, and chart plotting, providing a deeper understanding of the portfolio's historical movement.
_______________________
▋ OVERVIEW:
The image can be taken as an example of building a custom portfolio index. I created this index and named it “My Portfolio Performance”, which comprises several global companies and crypto assets.
_______________________
▋ OUTPUTS:
The output can be divided into 4 sections:
1. Portfolio Index Title (Name & Value).
2. Portfolio Specifications.
3. Portfolio Holdings.
4. Portfolio Index Chart.
1. Portfolio Index Title, displays the index name at the top, and at the bottom, it shows the index value, along with the chart timeframe, e.g., daily change in points and percentage.
2. Portfolio Specifications, displays the essential information on portfolio performance, including the investment date range, initial capital, returns, assets, and equity.
3. Portfolio Holdings, a list of the holding securities inside a table that contains the ticker, average entry price, last price, return percentage of the portfolio's initial capital, and customized weighted percentage of the portfolio. Additionally, a tooltip appears when the user passes the cursor over a ticker's cell, showing brief information about the company, such as the company's name, exchange market, country, sector, and industry.
4. Index Chart, display a plot of the historical movement of the index in the form of a bar, candle, or line chart.
_______________________
▋ INDICATOR SETTINGS:
Section(1): Style Settings
(1) Naming the index.
(2) Table location on the chart and cell size.
(3) Sorting Holdings Table. By securities’ {Return(%) Portfolio, Weight(%) Portfolio, or Ticker Alphabetical} order.
(4) Choose the type of index: {Equity or Return (%)}, and the plot type for the index: {Candle, Bar, or Line}.
(5) Positive/Negative colors.
(6) Table Colors (Title, Cell, and Text).
(7) To show/hide any indicator’s components.
Section(2): Performance Settings
(1) Calculation window period: from DateTime to DateTime.
(2) Initial Capital and specifying currency.
(3) Option to enable portfolio rebalancing in {Monthly, Quarterly, or Yearly} intervals.
Section(3): Portfolio Holdings
(1) Enable and count security in the investment portfolio.
(2) Initial weight of security. For example, if the initial capital is $100,000 and the weight of XYZ stock is 4%, the initial value of the shares would be $4,000.
(3) Select and add up to 30 symbols that interested in.
Please let me know if you have any questions.
Day/Week/Month Metrics (Zeiierman)█ Overview
The Day/Week/Month Metrics (Zeiierman) indicator is a powerful tool for traders looking to incorporate historical performance into their trading strategy. It computes statistical metrics related to the performance of a trading instrument on different time scales: daily, weekly, and monthly. Breaking down the performance into daily, weekly, and monthly metrics provides a granular view of the instrument's behavior.
The indicator requires the chart to be set on a daily timeframe.
█ Key Statistics
⚪ Day in month
The performance of financial markets can show variability across different days within a month. This phenomenon, often referred to as the "monthly effect" or "turn-of-the-month effect," suggests that certain days of the month, especially the first and last days, tend to exhibit higher than average returns in many stock markets around the world. This effect is attributed to various factors including payroll contributions, investment of monthly dividends, and psychological factors among traders and investors.
⚪ Edge
The Edge calculation identifies days within a month that consistently outperform the average monthly trading performance. It provides a statistical advantage by quantifying how often trading on these specific days yields better returns than the overall monthly average. This insight helps traders understand not just when returns might be higher, but also how reliable these patterns are over time. By focusing on days with a higher "Edge," traders can potentially increase their chances of success by aligning their strategies with historically more profitable days.
⚪ Month
Historically, the stock market has exhibited seasonal trends, with certain months showing distinct patterns of performance. One of the most well-documented patterns is the "Sell in May and go away" phenomenon, suggesting that the period from November to April has historically brought significantly stronger gains in many major stock indices compared to the period from May to October. This pattern highlights the potential impact of seasonal investor sentiment and activities on market performance.
⚪ Day in week
Various studies have identified the "day-of-the-week effect," where certain days of the week, particularly Monday and Friday, show different average returns compared to other weekdays. Historically, Mondays have been associated with lower or negative average returns in many markets, a phenomenon often linked to the settlement of trades from the previous week and negative news accumulation over the weekend. Fridays, on the other hand, might exhibit positive bias as investors adjust positions ahead of the weekend.
⚪ Week in month
The performance of markets can also vary within different weeks of the month, with some studies suggesting a "week of the month effect." Typically, the first and the last week of the month may show stronger performance compared to the middle weeks. This pattern can be influenced by factors such as the timing of economic reports, monthly investment flows, and options and futures expiration dates which tend to cluster around these periods, affecting investor behavior and market liquidity.
█ How It Works
⚪ Day in Month
For each day of the month (1-31), the script calculates the average percentage change between the opening and closing prices of a trading instrument. This metric helps identify which days have historically been more volatile or profitable.
It uses arrays to store the sum of percentage changes for each day and the total occurrences of each day to calculate the average percentage change.
⚪ Month
The script calculates the overall gain for each month (January-December) by comparing the closing price at the start of a month to the closing price at the end, expressed as a percentage. This metric offers insights into which months might offer better trading opportunities based on historical performance.
Monthly gains are tracked using arrays that store the sum of these gains for each month and the count of occurrences to calculate the average monthly gain.
⚪ Day in Week
Similar to the day in the month analysis, the script evaluates the average percentage change between the opening and closing prices for each day of the week (Monday-Sunday). This information can be used to assess which days of the week are typically more favorable for trading.
The script uses arrays to accumulate percentage changes and occurrences for each weekday, allowing for the calculation of average changes per day of the week.
⚪ Week in Month
The script assesses the performance of each week within a month, identifying the gain from the start to the end of each week, expressed as a percentage. This can help traders understand which weeks within a month may have historically presented better trading conditions.
It employs arrays to track the weekly gains and the number of weeks, using a counter to identify which week of the month it is (1-4), allowing for the calculation of average weekly gains.
█ How to Use
Traders can use this indicator to identify patterns or trends in the instrument's performance. For example, if a particular day of the week consistently shows a higher percentage of bullish closes, a trader might consider this in their strategy. Similarly, if certain months show stronger performance historically, this information could influence trading decisions.
Identifying High-Performance Days and Periods
Day in Month & Day in Week Analysis: By examining the average percentage change for each day of the month and week, traders can identify specific days that historically have shown higher volatility or profitability. This allows for targeted trading strategies, focusing on these high-performance days to maximize potential gains.
Month Analysis: Understanding which months have historically provided better returns enables traders to adjust their trading intensity or capital allocation in anticipation of seasonally stronger or weaker periods.
Week in Month Analysis: Identifying which weeks within a month have historically been more profitable can help traders plan their trades around these periods, potentially increasing their chances of success.
█ Settings
Enable or disable the types of statistics you want to display in the table.
Table Size: Users can select the size of the table displayed on the chart, ranging from "Tiny" to "Auto," which adjusts based on screen size.
Table Position: Users can choose the location of the table on the chart
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
MACD_TRIGGER_CROSS_TRIANGLEMACD Triangle Trigger Indicator by thebearfib
Overview
The MACD Cross Triangle Indicator is a powerful tool for traders who rely on the MACD's signal line crossovers to make informed trading decisions. This indicator enhances the traditional MACD by allowing users to customize triggers for bullish and bearish signals and by displaying these signals directly on the chart with visually distinctive labels.
Features
Customizable Color Scheme: Choose distinct colors for bullish and bearish signals to fit your chart's theme or your personal preference.
Flexible Trigger Conditions: Select from a variety of trigger conditions based on MACD and signal line behaviors over a specified number of bars back.
Visual Signal Indicators: Bullish and bearish signals are marked with upward and downward triangles, making it easy to spot potential entry or exit points.
Detailed Trigger Descriptions: A comprehensive table lists all available triggers and their descriptions, aiding in selection and understanding of each trigger's mechanism.
Configuration Options
Bullish and Bearish Colors: Customize the color of the labels for bullish (upward) and bearish (downward) signals.
Trend Lookback Period: Choose how far back (in bars) the indicator should look to determine the trend, affecting the calculation of certain triggers.
Trigger Selection for Bullish and Bearish Signals: Pick specific triggers for both bullish and bearish conditions from a list of 10 different criteria, ranging from MACD crossovers to historical comparisons of MACD, signal line, and histogram values.
Label Size and Font Settings: Adjust the size of the signal labels on the chart and the font size of the trigger descriptions table to ensure readability and fit with your chart layout.
Trigger Descriptions Table Position and Color: Customize the position and color of the trigger descriptions table to match your chart's aesthetic and layout preferences.
Trigger Mechanisms
Trigger 1 to 10: Each trigger corresponds to a specific condition involving the MACD line, signal line, and histogram. These include crossovers, directional changes compared to previous bars, and comparisons of current values to historical values.
Usage
1. Select Trigger Conditions: Choose the desired triggers for bullish and bearish signals based on your trading strategy.
2. Customize Visuals: Set your preferred colors for the bullish and bearish labels, adjust label and font sizes, and configure the trigger descriptions table.
3. Analyze Signals: Watch for the upward (bullish) and downward (bearish) triangles to identify potential trading opportunities based on MACD crossover signals.
Conclusion
The MACD Cross Triangle Indicator offers a customizable and visually intuitive way to leverage MACD crossover signals for trading. With its flexible settings and clear signal indicators, traders can tailor the indicator to fit their strategy and improve their decision-making process on TradingView.
RSI Screener Multi Timeframe [5ema]This indicator is the simple version of my indicator: RSI Screener and Divergence .
Only show table with values, signals at 5 custom timeframes.
-----
I reused some functions, made by (i believe that):
©paaax: The table position function.
@kingthies: The RSI divergence function.
@QuantNomad: The function calculated value and array screener for 40+ instruments.
I have commented in my code. Thanks so much!
-----
How it works:
1. Input :
Length of RSI => calculate RSI.
Upper/lower => checking RSI overbought/oversold.
Right bars / left bars => returns price of the pivot low & high point => checking divergence.
Range upper / lower bars => compare the low & high point => checking divergence.
Timeframe => request.security another time frame.
Table position => display screener table.
2. Input bool:
Regular Bearish divergence.
Hidden Bullish divergence .
Hidden Bearish divergence.
3. Basic calculated:
Make function for RSI , pivot low & high point of RSI and price.
Request.security that function for earch time frame.
Result RSI, Divergence.
4. Condition of signal:
Buy condition:
RSI oversold (1)
Bullish divergence (2).
=> Buy if (1) and (2), review buy (1) or (2).
Sell condition:
RSI overbought (3).
Bearish divergence (4).
=> Sell if (3) and (4), review sell (3) or (4).
-----
Table screener:
Time frame.
RSI (green - oversold, red - overbought)
Divergence (>> - regular bullish , << regular bearish , > - hidden bullish , < - hidden bearish ).
Signal (green ⦿ - Buy, red ⦿ - Sell, green 〇 - review buy, red 〇 - review sell).
- Regular Bearish divergence:
- Regular Bullish divergence:
- Regular Bullish divergence + RSI overSold
- Regular Bearish divergence + RSI overBought
-----
This indicator is for reference only, you need your own method and strategy.
If you have any questions, please let me know in the comments.
AlpHay : ToolKitToolKit:
First Impressions for Securities; (like crime scene investigators) 🧐
Our first job is to understand "What did happen here?" (historically, like Price Ranges or Price Performances) 🤔
Secondly, we try to figure out "where are we now?" (like common indicators or Moving Averages) 🤔
Then "What was the chain of events?" (macro, local, fundamentals, shorts, etc.)
Note: There are a lot of useful scripts out there, but If you want to see my approach for "Fundamentals" or "Finra Short Report" scripts, have a look.
Now we have a Clue. 😎
Includes;
1. Daily Metrics (Price performance, Price Difference, Volume, Trade)
2. Historic Price Performances
3. Historic Price ranges
4. RSI and MACD (you can change) Indicators for four "Time Frame" (you can change also)
5. Moving Averages (also shows daily values on the chart)
* Easy to customize.
* You can be positioned where ever you need. (be careful about overlays)
* You can turn on/off tables for your daily usage.
* You can flip Horizontally for some of the tables.
* Always look at tooltips (mouse over for Averages etc.)
I hope you enjoy it.
Disclaimer and Warning!
* Do not forget this is my Interpolation of the data sets. You can't invest in relying on this indicator. This is just a visual representation of the data sets.
* Just be careful what you wish for. And search for anomalies.
// ToDO List.
* Pre/Post Market Price and Volume
AI-Bank-Nifty Tech AnalysisThis code is a TradingView indicator that analyzes the Bank Nifty index of the Indian stock market. It uses various inputs to customize the indicator's appearance and analysis, such as enabling analysis based on the chart's timeframe, detecting bullish and bearish engulfing candles, and setting the table position and style.
The code imports an external script called BankNifty_CSM, which likely contains functions that calculate technical indicators such as the RSI, MACD, VWAP, and more. The code then defines several table cell colors and other styling parameters.
Next, the code defines a table to display the technical analysis of eight bank stocks in the Bank Nifty index. It then defines a function called get_BankComponent_Details that takes a stock symbol as input, requests the stock's OHLCV data, and calculates several technical indicators using the imported CSM_BankNifty functions.
The code also defines two functions called get_EngulfingBullish_Detection and get_EngulfingBearish_Detection to detect bullish and bearish engulfing candles.
Finally, the code calculates the technical analysis for each bank stock using the get_BankComponent_Details function and displays the results in the table. If the engulfing input is enabled, the code also checks for bullish and bearish engulfing candles and displays buy/sell signals accordingly.
The FRAMA stands for "Fractal Adaptive Moving Average," which is a type of moving average that adjusts its smoothing factor based on the fractal dimension of the price data. The fractal dimension reflects self-similarity at different scales. The FRAMA uses this property to adapt to the scale of price movements, capturing short-term and long-term trends while minimizing lag. The FRAMA was developed by John F. Ehlers and is commonly used by traders and analysts in technical analysis to identify trends and generate buy and sell signals. I tried to create this indicator in Pine.
In this context, "RS" stands for "Relative Strength," which is a technical indicator that compares the performance of a particular stock or market sector against a benchmark index.
The "Alligator" is a technical analysis tool that consists of three smoothed moving averages. Introduced by Bill Williams in his book "Trading Chaos," the three lines are called the Jaw, Teeth, and Lips of the Alligator. The Alligator indicator helps traders identify the trend direction and its strength, as well as potential entry and exit points. When the three lines are intertwined or close to each other, it indicates a range-bound market, while a divergence between them indicates a trending market. The position of the price in relation to the Alligator lines can also provide signals, such as a buy signal when the price crosses above the Alligator lines and a sell signal when the price crosses below them.
In addition to these, we have several other commonly used technical indicators, such as MACD, RSI, MFI (Money Flow Index), VWAP, EMA, and Supertrend. I used all the built-in functions for these indicators from TradingView. Thanks to the developer of this TradingView Indicator.
I also created a BankNifty Components Table and checked it on the dashboard.
Candle Counter [theEccentricTrader]█ OVERVIEW
This indicator counts the number of confirmed candle scenarios on any given candlestick chart and displays the statistics in a table, which can be repositioned and resized at the user's discretion.
█ CONCEPTS
Green and Red Candles
A green candle is one that closes with a high price equal to or above the price it opened.
A red candle is one that closes with a low price that is lower than the price it opened.
Upper Candle Trends
A higher high candle is one that closes with a higher high price than the high price of the preceding candle.
A lower high candle is one that closes with a lower high price than the high price of the preceding candle.
A double-top candle is one that closes with a high price that is equal to the high price of the preceding candle.
Lower Candle Trends
A higher low candle is one that closes with a higher low price than the low price of the preceding candle.
A lower low candle is one that closes with a lower low price than the low price of the preceding candle.
A double-bottom candle is one that closes with a low price that is equal to the low price of the preceding candle.
█ FEATURES
Inputs
Start Date
End Date
Position
Text Size
Show Sample Period
Show Plots
Table
The table is colour coded, consists of three columns and twenty-two rows. Blue cells denote all candle scenarios, green cells denote green candle scenarios and red cells denote red candle scenarios.
The candle scenarios are listed in the first column with their corresponding total counts to the right, in the second column. The last row in column one, row twenty-two, displays the sample period which can be adjusted or hidden via indicator settings.
Rows two and three in the third column of the table display the total green and red candles as percentages of total candles. Rows four to nine in column three, coloured blue, display the corresponding candle scenarios as percentages of total candles. Rows ten to fifteen in column three, coloured green, display the corresponding candle scenarios as percentages of total green candles. And lastly, rows sixteen to twenty-one in column three, coloured red, display the corresponding candle scenarios as percentages of total red candles.
Plots
I have added plots as a visual aid to the various candle scenarios listed in the table. Green up-arrows denote higher high candles when above bar and higher low candles when below bar. Red down-arrows denote lower high candles when above bar and lower low candles when below bar. Similarly, blue diamonds when above bar denote double-top candles and when below bar denote double-bottom candles. These plots can also be hidden via indicator settings.
█ HOW TO USE
This indicator is intended for research purposes and strategy development. I hope it will be useful in helping to gain a better understanding of the underlying dynamics at play on any given market and timeframe. It can, for example, give you an idea of any inherent biases such as a greater proportion of green candles to red. Or a greater proportion of higher low green candles to lower low green candles. Such information can be very useful when conducting top down analysis across multiple timeframes, or considering trailing stop loss methods.
What you do with these statistics and how far you decide to take your research is entirely up to you, the possibilities are endless.
This is just the first and most basic in a series of indicators that can be used to study objective price action scenarios and develop a systematic approach to trading.
█ LIMITATIONS
Some higher timeframe candles on tickers with larger lookbacks such as the DXY, do not actually contain all the open, high, low and close (OHLC) data at the beginning of the chart. Instead, they use the close price for open, high and low prices. So, while we can determine whether the close price is higher or lower than the preceding close price, there is no way of knowing what actually happened intra-bar for these candles. And by default candles that close at the same price as the open price, will be counted as green. You can avoid this problem by utilising the sample period filter.
The green and red candle calculations are based solely on differences between open and close prices, as such I have made no attempt to account for green candles that gap lower and close below the close price of the preceding candle, or red candles that gap higher and close above the close price of the preceding candle. I can only recommend using 24-hour markets, if and where possible, as there are far fewer gaps and, generally, more data to work with. Alternatively, you can replace the scenarios with your own logic to account for the gap anomalies, if you are feeling up to the challenge.
It is also worth noting that the sample size will be limited to your Trading View subscription plan. Premium users get 20,000 candles worth of data, pro+ and pro users get 10,000, and basic users get 5,000. If upgrading is currently not an option, you can always keep a rolling tally of the statistics in an excel spreadsheet or something of the like.
Bearish Market Indicator V2Definition
Have you ever wonder whether if the stock/index/market is "bearish" ? A Bearish Market Indicator (B.M.I) is not a new concept, the definition is simply 20% lower from the recent (term: short-term, recent: usually within a year, a.k.a 1 year) highs (closing price with in the recent period or within in a year or simply a 52-Week High). It is called “bearish” by definition when the closing price is below 20% from the highest price within the year (52-Week high: Green Line). To visualize the “20%” below the recent highs, there is a plot (line: light yellow color in the middle) called a Bearish Market By Definition Value. For example, the SPX 500 has been in a bearish market which is why there is a purple color highlight over the 52-Week High (green line) since September 21, 2022 because the closing price is below the Bearish Market By Definition Value (light yellow color) or “20% below the recent highs”. Finally, there is a red line under in the graph and it is the lowest price within a year. So when you hear, “this ticker is at a 52-Week Low”, you know what it means.
Line Summary:
Green Color Line = 52-Week High
Yellow Color Line = 20% away from the 52-Week High or Bearish Market By Definition Value
Red Color Line = 52-Week Low
Color Summary:
Red Color = Bad
Saturated Red Color = Very Bad
Purple Color = Bearish (It may look pink: red + purple)
White Color = Less Bad (That’s because there is no certainty only probability)
Green Color = Not too Bad (That’s because there is no certainty only probability)
Now to more complicated Metrics
>> If you do not like the technical indicators, go to the indicator settings, uncheck the tables. Otherwise, please continue reading. <<
Pre-requisites
+ Understand that the indicators are lagging indicators.
+ Using it under “D” or “Day” interval
+ Already Understand: Moving Averages, Stochastic-RSI, RSI, Super Trend and MACD.
+ Please be aware that this might not be compatible with traders!
Indicators
This B.M.I is fused (comprised, combined) with multiple indicators:
- Moving Averages
I would not rely just on the Moving Averages (MA) since it is a lagging indicator. The values are derived by finding the differences with respect to the MAs (between the closing price and with the respect MA).
- Stochastic-RSI
Stochastic and RSI combo with RSI-Color coating. The first value is the rsi-stochastic-k followed by the rsi-stochastic-d both are compartmentalized with “|”.
Parameter:
Numbers > 80 Not Good
Numbers < 20 Is it time? (You can manually verify the lines (k, d) or the values from them)
- Relative Strength Index (RSI)
The first value is the rsi followed by the rsi-ma both are compartmentalized with “|”. It is also coated with RSI-color.
Parameter:
Numbers > 70 Overbought | Color Red
If the RSI > RSI’s MA = Green
If the RSI < RSI’s MA = Red
Numbers < 30 Oversold | Color Red
- Moving Averages Convergence Divergence (MACD)
The first value is the MACD-line followed by the signal-line both are compartmentalized with “|”.
Macd-line > signal line = green
Macd-line < signal line = red
- Supertrend (please look up from the documentation; i can not embed the link)
Think of this way, you’re riding a wave. If the wave is climbing, expect the price to follow.
Direction < 0 = Green
Direction > 0 = Red
- Other Trend similar to supertrend
This is similar to the Super Trend according the some. Imagine you’re drawing a trend line manually within 6 months.
Within the period, the line gets smoothed over and over til the n=9.
> If the closing is less than the 9th value, it implies the trend is slowing down.
Usage
Adjustments
+ Since there are different holidays from different countries, you can change the BMI-Period from the indicator settings “BMI-4khansolo”.
+ You can hide Technical Indicator Tables, it is also under the settings (see above).
> This will show red over the 52-Week high if it tests for positive .
Purpose
Do you like eating the same food over and over? No! I love different food! I also love a variety of indicators. Especially, I love having MULTIPLE indicators presented in one canvas at the same time (personalized).
After spending a lot of time, I want to share my “FOOD” which is made of different ingredients (indicators) with someone who appreciates food! This Makes me a chef isn't it? Yes! Chef!
Questions?
If you have questions or spotted errors, please comment them below so that I can improve.
Sources
All the materials (i.e., functions like ta.rsi, etc...) used in here are available in the platform.
All the references or sources materials are commented with the code since the I am not allowed to put them here.
ConsoleLibrary "Console"
█ OVERVIEW
An easy way to output messages to a console like table using a a simple "print" function that can be called from anywhere in your code including functions.
█ Supports:
- Scrollable console messages
- Customisable number of displayed messages
- More than one "console" for different types of output if required
- The ability to choose which message to start viewing from (useful if the message list is long)
- The ability to place the console table at different positions on the chart to mitigate against
overwriting an existing table.
█ Limitations:
The "scrollbar" handle is actually a modified time widget handle. As the handle is grabbed and moved left or right across the chart bars, this script calculates the offset of the bar being pointed to from the last bar in the chart and uses that as the console message offset. However, It isn't possible to position this on the last chart bar with code.
So there are two solutions:
1) Manually change timestamp of the variable scrollStart to the current time (roughly)
eg. scrollStart = "25 Dec 2022 14:30 +0000"
2) Use a higher timeframe (Weeks or Months) and visually find the scroll bar. If it is to the right of the chart bars the console output will read NaN. Grab the handle and move it left and it will snap to the last chart candle position. If it is to the left then find it and move it to the right as needed.
█ Notes On Usage
- Import the library as console (the call will be console.print(...) )
- Assign a console variable name and call the console.initialise function
eg. var con1=console.initialise()
- Use the console.print() function to print a message or messages
This takes two parameters:
_consoleName :this is the console name you are printing to
_message: this is the message that you want to display. It is a string and can be built in the normal way using any pinescript string functions like str.tostring() etc
- Use the console.display function to display the messages.
To work as intended this display function should be placed at the last line with the following code
if i_showMessages
....if i_displayTable == "con1"
........display(con1, i_lineOffset, i_rowsToDisplay, i_gotoMsg, posn)
(More "consoles" can be written to and the example code provided with the library shows this in more detail. Also, the indents don't show in these notes)
Lastly, placement of a console.print() without a qualifying "if" statement will occur for every bar. This may be desired. If not then use under an if statement (example in the supplied code).
Happy debugging :)
-----------------------------------------------------------------------------------------------------------
initialise()
initialise: creates the message array
Parameters:
none :
Returns: message array: this is assigned to the "console" identifier
print(_consoleName, _message)
used to output the desired text string to the console
Parameters:
_consoleName : : the message array
_message : : the console message
Returns: none
display(_consoleName, _lineOffset, _rowsToDisplay, _gotoMsg, _posn)
display: placed in the last section of code. Displays the console messages
Parameters:
_consoleName : : the message array
_lineOffset : : the setting of the scroll bar (time widget)
_rowsToDisplay : : how many rows to show in the console table
_gotoMsg : : which message to display from (default is 0)
_posn : : where the console table will be displayed
Returns: none
_matrixLibrary "_matrix"
Library helps visualize matrix as array of arrays and enables users to use array methods such as push, pop, shift, unshift etc along with cleanup activities on drawing objects wherever required
unshift(mtx, row) unshift array of lines to first row of the matrix
Parameters:
mtx : matrix of lines
row : array of lines to be inserted in row
Returns: resulting matrix of lines
unshift(mtx, row) unshift array of labels to first row of the matrix
Parameters:
mtx : matrix of labels
row : array of labels to be inserted in row
Returns: resulting matrix labels
unshift(mtx, row) unshift array of boxes to first row of the matrix
Parameters:
mtx : matrix of boxes
row : array of boxes to be inserted in row
Returns: resulting matrix of boxes
unshift(mtx, row) unshift array of linefill to first row of the matrix
Parameters:
mtx : matrix of linefill
row : array of linefill to be inserted in row
Returns: resulting matrix of linefill
unshift(mtx, row) unshift array of tables to first row of the matrix
Parameters:
mtx : matrix of tables
row : array of tables to be inserted in row
Returns: resulting matrix of tables
unshift(mtx, row) unshift array of int to first row of the matrix
Parameters:
mtx : matrix of int
row : array of int to be inserted in row
Returns: resulting matrix of int
unshift(mtx, row) unshift array of float to first row of the matrix
Parameters:
mtx : matrix of float
row : array of float to be inserted in row
Returns: resulting matrix of float
unshift(mtx, row) unshift array of bool to first row of the matrix
Parameters:
mtx : matrix of bool
row : array of bool to be inserted in row
Returns: resulting matrix of bool
unshift(mtx, row) unshift array of string to first row of the matrix
Parameters:
mtx : matrix of string
row : array of string to be inserted in row
Returns: resulting matrix of string
unshift(mtx, row) unshift array of color to first row of the matrix
Parameters:
mtx : matrix of colors
row : array of colors to be inserted in row
Returns: resulting matrix of colors
push(mtx, row) push array of lines to end of the matrix row
Parameters:
mtx : matrix of lines
row : array of lines to be inserted in row
Returns: resulting matrix of lines
push(mtx, row) push array of labels to end of the matrix row
Parameters:
mtx : matrix of labels
row : array of labels to be inserted in row
Returns: resulting matrix of labels
push(mtx, row) push array of boxes to end of the matrix row
Parameters:
mtx : matrix of boxes
row : array of boxes to be inserted in row
Returns: resulting matrix of boxes
push(mtx, row) push array of linefill to end of the matrix row
Parameters:
mtx : matrix of linefill
row : array of linefill to be inserted in row
Returns: resulting matrix of linefill
push(mtx, row) push array of tables to end of the matrix row
Parameters:
mtx : matrix of tables
row : array of tables to be inserted in row
Returns: resulting matrix of tables
push(mtx, row) push array of int to end of the matrix row
Parameters:
mtx : matrix of int
row : array of int to be inserted in row
Returns: resulting matrix of int
push(mtx, row) push array of float to end of the matrix row
Parameters:
mtx : matrix of float
row : array of float to be inserted in row
Returns: resulting matrix of float
push(mtx, row) push array of bool to end of the matrix row
Parameters:
mtx : matrix of bool
row : array of bool to be inserted in row
Returns: resulting matrix of bool
push(mtx, row) push array of string to end of the matrix row
Parameters:
mtx : matrix of string
row : array of string to be inserted in row
Returns: resulting matrix of string
push(mtx, row) push array of colors to end of the matrix row
Parameters:
mtx : matrix of colors
row : array of colors to be inserted in row
Returns: resulting matrix of colors
shift(mtx) shift removes first row from matrix of lines
Parameters:
mtx : matrix of lines from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of labels
Parameters:
mtx : matrix of labels from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of boxes
Parameters:
mtx : matrix of boxes from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of linefill
Parameters:
mtx : matrix of linefill from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of tables
Parameters:
mtx : matrix of tables from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of int
Parameters:
mtx : matrix of int from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of float
Parameters:
mtx : matrix of float from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of bool
Parameters:
mtx : matrix of bool from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of string
Parameters:
mtx : matrix of string from which the shift operation need to be performed
Returns: void
shift(mtx) shift removes first row from matrix of colors
Parameters:
mtx : matrix of colors from which the shift operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of lines
Parameters:
mtx : matrix of lines from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of labels
Parameters:
mtx : matrix of labels from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of boxes
Parameters:
mtx : matrix of boxes from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of linefill
Parameters:
mtx : matrix of linefill from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of tables
Parameters:
mtx : matrix of tables from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of int
Parameters:
mtx : matrix of int from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of float
Parameters:
mtx : matrix of float from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of bool
Parameters:
mtx : matrix of bool from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of string
Parameters:
mtx : matrix of string from which the pop operation need to be performed
Returns: void
pop(mtx) pop removes last row from matrix of colors
Parameters:
mtx : matrix of colors from which the pop operation need to be performed
Returns: void
clear(mtx) clear clears the matrix of lines
Parameters:
mtx : matrix of lines which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of labels
Parameters:
mtx : matrix of labels which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of boxes
Parameters:
mtx : matrix of boxes which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of linefill
Parameters:
mtx : matrix of linefill which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of tables
Parameters:
mtx : matrix of tables which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of int
Parameters:
mtx : matrix of int which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of float
Parameters:
mtx : matrix of float which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of bool
Parameters:
mtx : matrix of bool which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of string
Parameters:
mtx : matrix of string which needs to be cleared
Returns: void
clear(mtx) clear clears the matrix of colors
Parameters:
mtx : matrix of colors which needs to be cleared
Returns: void
WASDE DatesOverview
WASDE Dates — a small, focused event indicator that displays confirmed USDA WASDE release dates for 2025 on the chart and marks each release day. The indicator is designed to be a lightweight timing tool for traders who want clean visual reminders and optional alerts around USDA WASDE publications.
Features
• Shows official WASDE release dates for 2025 in a compact chart table.
• Draws on-chart markers and a dotted vertical line on WASDE release days.
• Two alert conditions you can enable in TradingView: "WASDE Day Alert" and "WASDE 24h Reminder".
• Simple table position control (Top/Bottom, Left/Right) in the indicator settings.
• Minimal, self-contained code — no external data feeds or permissions required.
How to use
1. Apply the indicator to any chart and timeframe.
2. Use the indicator settings to choose table position.
3. Enable Alerts (if desired) via TradingView Alerts → choose “WASDE Day Alert” or “WASDE 24h Reminder”.
4. This version contains 2025 confirmed dates only — verify dates for live trading and enable alerts as needed.
Design & rationale
This indicator is intentionally not a technical trading signal. It is an event scheduler focused on clarity and low overhead: combine it with your existing setup to avoid being surprised by WASDE publications and to quickly inspect price action around these event dates.
Limitations & disclaimer
• This script shows **confirmed 2025** WASDE dates only. It does not provide trading advice or entry/exit signals. Use at your own risk.
• Double-check official USDA publishing times before executing trades.
• No external links or contact information are included in this description to comply with TradingView publishing rules.
Feature outlook (V2)
Planned V2 (future release): enhanced countdown (days → hours/minutes), optional inclusion of estimated 2026 dates marked as (TBC), and an invite-only/protected advanced version with reaction overlays (T+1/T+3) and extended alert options. V2 will be announced on this script page when ready.
Changelog
v1 — public release: 2025 confirmed dates, release markers, alerts, table position control.
VOLUME Full [Titans_Invest]VOLUME Full
Designed for traders who want to take volume analysis to the next level.
This version delivers deeper insight into volume activity, integrating multiple customizable filters to highlight key buying and selling pressure. It's a comprehensive solution for volume-based decision-making.
⯁ WHAT IS THE VOLUME❓
The Volume indicator is a fundamental technical analysis tool that measures the number of shares or contracts traded in a security or market during a given period. It helps traders and investors understand the strength or weakness of a price movement, confirm trends, and predict potential reversals. Volume is typically displayed as a histogram below a price chart, with each bar representing the volume traded during a specific time interval.
⯁ HOW TO USE THE VOLUME❓
The Volume indicator can be used in several ways to enhance trading decisions:
• Trend Confirmation: High volume during a price move confirms the strength of that trend, while low volume can indicate a weak or unsustainable trend.
• Breakouts: A price breakout from a pattern or range accompanied by high volume is more likely to be valid and sustainable.
• Divergence: When the price moves in one direction and volume moves in the opposite direction, it can signal a potential reversal.
• Overbought/Oversold Conditions: Extreme volume levels can sometimes indicate that an asset is overbought or oversold, though this is less straightforward than with oscillators like the RSI.
⯁ ENTRY CONDITIONS
The conditions below are fully flexible and allow for complete customization of the signal.
______________________________________________________
🔹 CONDITIONS TO BUY 📈
______________________________________________________
▪︎ Signal Validity: The signal will remain valid for X bars .
▪︎ Signal Sequence: Configurable as AND or OR .
🔹 volume Positive
🔹 volume Negative
🔹 volume > volume
🔹 volume < volume
🔹 volume > volume_MA
🔹 volume > volume_MA * Trigger Signal (close > open)
🔹 volume > volume_MA * Trigger Signal (Keep State P)
🔹 volume > volume_MA * Trigger Signal (close < open)
🔹 volume > volume_MA * Trigger Signal (Keep State N)
______________________________________________________
______________________________________________________
🔸 CONDITIONS TO SELL 📉
______________________________________________________
▪︎ Signal Validity: The signal will remain valid for X bars .
▪︎ Signal Sequence: Configurable as AND or OR .
🔸 volume Positive
🔸 volume Negative
🔸 volume > volume
🔸 volume < volume
🔸 volume > volume_MA
🔸 volume > volume_MA * Trigger Signal (close > open)
🔸 volume > volume_MA * Trigger Signal (Keep State P)
🔸 volume > volume_MA * Trigger Signal (close < open)
🔸 volume > volume_MA * Trigger Signal (Keep State N)
______________________________________________________
______________________________________________________
🤖 AUTOMATION 🤖
• You can automate the BUY and SELL signals of this indicator.
______________________________________________________
______________________________________________________
⯁ UNIQUE FEATURES
______________________________________________________
Signal Validity: The signal will remain valid for X bars
Signal Sequence: Configurable as AND/OR
Condition Table: BUY/SELL
Condition Labels: BUY/SELL
Plot Labels in the Graph Above: BUY/SELL
Displays Positive & Negative Volume.
Automate and Monitor Signals/Alerts: BUY/SELL
Signal Validity: The signal will remain valid for X bars
Signal Sequence: Configurable as AND/OR
Table of Conditions: BUY/SELL
Conditions Label: BUY/SELL
Plot Labels in the graph above: BUY/SELL
Displays Positive & Negative Volume.
Automate & Monitor Signals/Alerts: BUY/SELL
______________________________________________________
📜 SCRIPT : VOLUME Full
🎴 Art by : @Titans_Invest & @DiFlip
👨💻 Dev by : @Titans_Invest & @DiFlip
🎑 Titans Invest — The Wizards Without Gloves 🧤
✨ Enjoy!
______________________________________________________
o Mission 🗺
• Inspire Traders to manifest Magic in the Market.
o Vision 𐓏
• To elevate collective Energy 𐓷𐓏
52WH/last52WHbefore3Months/ATHThis indicator calculates and displays three values:
First, it calculates the current 52-week high and displays it as a line and in a table at the top right with the name, date, and price.
Corresponding color markings are also displayed on the price scale.
Next, the 52-week high that is at least three months ago is determined.
The corresponding candle is also labeled with a date. This past high is also displayed as a line, on the price scale, and in the table.
Finally, the current all-time high is determined and also displayed as a line, in the price scale, and in the table.
All display values can be turned on or off in the view, and the corresponding colors of the displays can also be freely selected.
(This script was developed by J. Heina, jochen.heina(at)gmail, in collaboration with the ChatGPT tool).
=====
Trades in FavorTrades in Favor Indicator
Overview
The Trades in Favor indicator is a volume-weighted momentum oscillator that helps traders identify market conditions favoring long or short positions. It analyzes the relationship between price movements and volume to determine whether buying or selling pressure is dominating the market.
How It Works
The indicator calculates the percentage of volume-weighted price movements that are bullish versus bearish over a specified lookback period. It outputs values between 0-100:
Values above 70: Short Trade Zone (bearish conditions)
Values below 30: Long Trade Zone (bullish conditions)
Values around 50: Neutral Zone (balanced conditions)
Key Features
Volume-Weighted Analysis: Incorporates volume data for more accurate momentum readings
Clear Trading Zones: Visual zones with labels for immediate context
Customizable Parameters: Adjustable calculation length and smoothing periods
Built-in Alerts: Notifications when entering different trading zones
Information Table: Real-time display of current readings and percentages
Parameters
Calculation Length (20): Number of bars for momentum calculation
Smoothing Period (5): Moving average smoothing for cleaner signals
Short Trade Zone (70): Upper threshold for short trade conditions
Long Trade Zone (30): Lower threshold for long trade conditions
Trading Applications
Trend Confirmation: Validate trend direction with volume-backed momentum
Entry Timing: Identify optimal entry points in respective trade zones
Market Sentiment: Gauge overall buying vs selling pressure
Risk Management: Avoid trades against dominant market flow
Visual Elements
White oscillator line with clear zone boundaries
Background coloring in extreme zones
On-chart labels for immediate context
Information table showing current percentages
Customizable alert conditions
Best Practices
Use in conjunction with other technical analysis tools
Consider multiple timeframes for confirmation
Pay attention to volume spikes in extreme zones
Watch for divergences between price and the indicator
Perfect for swing traders, day traders, and anyone looking to align their trades with volume-backed market momentum.
Multi Straddle-Strangle ChartThis powerful indicator is designed for options traders who want to visualize and track the combined premium of multiple straddle and strangle strategies in a single, dedicated pane.
Quickly analyze and compare up to five different options strategies at a glance, directly on your chart. This tool is perfect for monitoring volatility, tracking potential profits/losses on a position, and spotting key support and resistance levels based on option premiums.
Key Features:
Plot Up to 5 Strategies: Simultaneously plot any combination of up to 5 straddles or strangles.
Real-Time Data: Fetches live data for both Call and Put options to give you an up-to-the-second view of the combined price.
Dynamic Symbol Generation: Automatically detects the underlying symbol (e.g., NIFTY, BANKNIFTY, stocks) and builds the correct option symbols based on your input.
Customizable Inputs: Easily configure the expiry date, strike prices and line colors for each of the 5 lines.
In-Chart Summary Table: A clean and clear table in the corner of your chart provides a quick summary of each enabled strategy and its current price.
Important Note on Usage:
This tool requires you to input a strike price in all fields, even if you do not plan to use all five lines. This is necessary because of a fundamental rule in the Pine Script language: every input must have a constant, non-empty default value. The indicator is optimized to only fetch data for the lines you have explicitly enabled with the "Enable Line X" checkbox.
Z-Score Volume with CVD TrendZ-Score Volume & CVD Trend with Exhaustion Signals
This powerful, all-in-one indicator combines statistical volume analysis, Cumulative Volume Delta (CVD), and a custom clustering algorithm to provide a clear and dynamic view of market sentiment. It is designed to help traders identify the prevailing trend and spot potential reversals or trend exhaustion before they happen.
Important Note: This indicator is specifically designed and optimized for use during the Regular Trading Hours (RTH) New York session, which is typically characterized by high volume and volatility. Its signals may be less reliable in low-volume or overnight sessions.
Core Concepts
1. Volume Z-Score
The script first calculates a Z-score for volume, which measures how many standard deviations a bar's volume is from a moving average. This helps to identify statistically significant volume spikes that may signal institutional activity or a major shift in sentiment.
2. Cumulative Volume Delta (CVD)
CVD plots the net difference between buying and selling volume over time. A rising CVD indicates a surplus of buying pressure, while a falling CVD shows a surplus of selling pressure. This provides a clear look at the direction of momentum.
3. Custom Clustering
By combining the Volume Z-score and CVD delta, the script classifies each bar into one of six distinct "clusters." The purpose is to simplify complex data into actionable signals.
High Conviction Bullish: High Z-score volume with strong CVD buying.
High Conviction Bearish: High Z-score volume with strong CVD selling.
Effort vs. Result: High Z-score volume with no clear CVD bias, indicating indecision or a struggle between buyers and sellers.
Quiet Accumulation: Low volume with subtle CVD buying, suggesting passive accumulation.
Quiet Distribution: Low volume with subtle CVD selling, suggesting passive distribution.
Low Conviction/Noise: Low volume and low CVD, representing general market noise.
Trend and Exhaustion Logic
Trend Establishment: The indicator determines the overall trend (Bullish, Bearish, or Neutral) by analyzing the majority of recent clusters over a configurable lookback period.
A Bullish Trend is confirmed when a majority of recent bars are either "High Conviction Bullish" or "Quiet Accumulation."
A Bearish Trend is confirmed when a majority of recent bars are either "High Conviction Bearish" or "Quiet Distribution."
Trend Exhaustion: This is a key feature for identifying potential reversals. The script looks for a divergence between price action and CVD within a confirmed trend.
Bullish Exhaustion Signal: Occurs during a confirmed "Bullish Trend" when you see a bearish divergence (price makes a higher high, but CVD shows negative delta and a close lower than the open). This is a strong sign the uptrend may be running out of steam.
Bearish Exhaustion Signal: Occurs during a confirmed "Bearish Trend" when you see a bullish divergence (price makes a lower low, but CVD shows positive delta and a close higher than the open). This indicates the downtrend may be exhausted.
How to Interpret the Visuals
Volume Bars: Colored to match the cluster they belong to.
Background Color: Shows the overall trend (light green for bullish, light red for bearish).
Circle Markers (bottom): Green circles indicate a bullish trend, and red circles indicate a bearish trend.
Triangles and Circles (top): Represent the specific cluster of each bar.
Trend Exhaustion Markers: Triangles above/below the bar signal potential trend exhaustion.
Info Table: An optional table provides a real-time summary of all key metrics for the current bar.
Settings
Volume EMA Length: Adjusts the moving average used for the Volume Z-score calculation.
Z-Score Look Back: Defines the number of bars to use for the volume and CVD percentile calculation.
Lower/Upper Cluster Percentile: Use these to adjust the sensitivity of the clustering. Tighter ranges (e.g., 25/75) capture more data, while wider ranges (e.g., 10/90) will only signal truly extreme events.
Trend Lookback Bars: Controls how many recent bars are considered when determining the trend.
This script offers a comprehensive and easy-to-read way to integrate volume, momentum, and trend analysis into your trading.
Happy Trading!
Trend Analyzer v0.6Trend Analyzer EMA Only v0.6
Simple yet powerful EMA trend analysis with multi-timeframe support!
Overview:
This comprehensive indicator focuses on EMA-based trend analysis with clean visual presentation. It provides clear BUY/SELL signals, trend tracking with unique IDs, peak detection, and multi-timeframe analysis across M15, M30, and H1 timeframes.
Key Features:
✅ EMA Trend Analysis - Fast and Slow EMA crossover signals
✅ Trend Tracking - Unique trend IDs with start/end markers
✅ Peak Detection - Automatic peak identification during trends
✅ Multi-Timeframe - Analysis across M15, M30, and H1 timeframes
✅ Visual Clarity - Dotted lines connecting labels to candles
✅ Statistics - BUY/SELL count and average trend length
How It Works:
The indicator calculates signal strength using weighted analysis:
• MACD (50%) - Primary trend momentum
• RSI (30%) - Overbought/oversold conditions
• Volume (20%) - Volume confirmation
Signal Logic:
• BUY - Fast EMA crosses above Slow EMA + both slopes positive
• SELL - Fast EMA crosses below Slow EMA + both slopes negative
• NEUTRAL - EMAs too close (below threshold)
Visual Elements:
• 🟢 BUY - Green label with trend ID
• 🔴 SELL - Red label with trend ID
• ⚪ NEUTRAL - Gray label with trend ID
• 🟡 PEAK - Yellow label marking trend extremes
• ⚫ END - Gray label marking trend end
Information Table:
Real-time display showing:
• Current Timeframe trend state
• Multi-Timeframe analysis (M15, M30, H1)
• PEAK Labels status
• Offset Type configuration
• Trend Strength percentage
• Statistics (BUY/SELL count, average trend length)
Settings:
• Fast EMA Length - 9 (default)
• Slow EMA Length - 21 (default)
• Min Trend Bars - 3 (filters short trends)
• Label Offset Type - ATR, % of price, or Dynamic
• Show PEAK Labels - On/Off toggle
Best Practices:
🎯 Works best in trending markets
📊 Use as overlay on main chart
⚡ Combine with price action analysis
🛡️ Always use proper risk management
Pro Tips:
• Green background = Strong uptrend, Red background = Strong downtrend
• Watch for trend change arrows for early reversal signals
• Use the information table for quick market assessment
• Monitor trend statistics for market behavior insights
Alerts:
• BUY Alert - "BUY signal detected"
• SELL Alert - "SELL signal detected"
Version 0.6 Improvements:
• Optimized performance
• Enhanced visual clarity
• Improved multi-timeframe analysis
• Refined trend detection algorithms
Created with ❤️ for the trading community
This indicator is free to use for both commercial and non-commercial purposes.
Volatility Cone Forecaster Lite [PhenLabs]📊 Volatility Cone Forecaster
Version: PineScript™v6
📌Description
The Volatility Cone Forecaster (VCF) is an advanced indicator designed to provide traders with a forward-looking perspective on market volatility. Instead of merely measuring past price fluctuations, the VCF analyzes historical volatility data to project a statistical “cone” that outlines a probable range for future price movements. Its core purpose is to contextualize the current market environment, helping traders to anticipate potential shifts from low to high volatility periods (and vice versa). By identifying whether volatility is expanding or contracting relative to historical norms, it solves the critical problem of preparing for significant market moves before they happen, offering a clear statistical edge in strategy development.
This indicator moves beyond lagging measures by employing percentile analysis to rank the current volatility state. This allows traders to understand not just what volatility is, but how significant it is compared to the recent past. The VCF is built for discretionary traders, system developers, and options strategists who need a sophisticated understanding of market dynamics to manage risk and identify high-probability opportunities.
🚀Points of Innovation
Forward-Looking Volatility Projection: Unlike standard indicators that only show historical data, the VCF projects a statistical cone of future volatility.
Percentile-Based Regime Analysis: Ranks current volatility against historical data (e.g., 90th, 75th percentiles) to provide objective context.
Automated Regime Detection: Automatically identifies and labels the market as being in a ‘High’, ‘Low’, or ‘Normal’ volatility regime.
Expansion & Contraction Signals: Clearly indicates whether volatility is currently increasing or decreasing, signaling shifts in market energy.
Integrated ATR Comparison: Plots an ATR-equivalent volatility measure to offer a familiar point of reference against the statistical model.
Dynamic Visual Modeling: The cone visualization directly on the price chart provides an intuitive guide for future expected price ranges.
🔧Core Components
Realized Volatility Engine: Calculates historical volatility using log returns over multiple user-defined lookback periods (short, medium, long) for a comprehensive view.
Percentile Analysis Module: A custom function calculates the 10th, 25th, 50th, 75th, and 90th percentiles of volatility over a long-term lookback (e.g., 252 days).
Forward Projection Calculator: Uses the calculated volatility percentiles to mathematically derive and draw the upper and lower bounds of the future volatility cone.
Volatility Regime Classifier: A logic-based system that compares current volatility to the historical percentile bands to classify the market state.
🔥Key Features
Customizable Lookback Periods: Adjust short, medium, and long-term lookbacks to fine-tune the indicator’s sensitivity to different market cycles.
Configurable Forward Projection: Set the number of days for the forward cone projection to align with your specific trading horizon.
Interactive Display Options: Toggle visibility for percentile labels, ATR levels, and regime coloring to customize the chart display.
Data-Rich Information Table: A clean, on-screen table displays all key metrics, including current volatility, percentile rank, regime, and trend.
Built-in Alert Conditions: Set alerts for critical events like volatility crossing the 90th percentile, dropping below the 10th, or switching between expansion and contraction.
🎨Visualization
Volatility Cone: Shaded bands projected onto the future price axis, representing the probable price range at different statistical confidence levels (e.g., 75th-90th percentile).
Color-Coded Volatility Line: The primary volatility plot dynamically changes color (e.g., red for high, green for low) to reflect the current volatility regime, providing instant context.
Historical Percentile Bands: Horizontal lines plotted across the indicator pane mark the key percentile levels, showing how current volatility compares to the past.
On-Chart Labels: Clear labels automatically display the current volatility reading, its percentile rank, the detected regime, and trend (Expanding/Contracting).
📖Usage Guidelines
Setting Categories
Short-term Lookback: Default: 10, Range: 5-50. Controls the most sensitive volatility calculation.
Medium-term Lookback: Default: 21, Range: 10-100. The primary input for the current volatility reading.
Long-term Lookback: Default: 63, Range: 30-252. Provides a baseline for long-term market character.
Percentile Lookback Period: Default: 252, Range: 100-1000. Defines the period for historical ranking; 252 represents one trading year.
Forward Projection Days: Default: 21, Range: 5-63. Determines how many bars into the future the cone is projected.
✅Best Use Cases
Breakout Trading: Identify periods of deep consolidation when volatility falls to low percentile ranks (e.g., below 25th) and begins to expand, signaling a potential breakout.
Mean Reversion Strategies: Target trades when volatility reaches extreme high percentile ranks (e.g., above 90th), as these periods are often unsustainable and lead to contraction.
Options Strategy: Use the cone’s projected upper and lower bounds to help select strike prices for strategies like iron condors or straddles.
Risk Management: Widen stop-losses and reduce position sizes when the indicator signals a transition into a ‘High’ volatility regime.
⚠️Limitations
Probabilistic, Not Predictive: The cone represents a statistical probability, not a guarantee of future price action. Extreme, unpredictable news events can drive prices outside the cone.
Lagging by Nature: All calculations are based on historical price data, meaning the indicator will always react to, not pre-empt, market changes.
Non-Directional: The indicator forecasts the *magnitude* of future moves, not the *direction*. It should be paired with a directional analysis tool.
💡What Makes This Unique
Forward Projection: Its primary distinction is projecting a data-driven, statistical forecast of future volatility, which standard oscillators do not do.
Contextual Analysis: It doesn’t just provide a number; it tells you what that number means through percentile ranking and automated regime classification.
🔬How It Works
1. Data Calculation:
The indicator first calculates the logarithmic returns of the asset’s price. It then computes the annualized standard deviation of these returns over short, medium, and long-term lookback periods to generate realized volatility readings.
2. Percentile Ranking:
Using a 252-day lookback, it analyzes the history of the medium-term volatility and determines the values that correspond to the 10th, 25th, 50th, 75th, and 90th percentiles. This builds a statistical map of the asset’s volatility behavior.
3. Cone Projection:
Finally, it takes these historical percentile values and projects them forward in time, calculating the potential upper and lower price bounds based on what would happen if volatility were to run at those levels over the next 21 days.
💡Note:
The Volatility Cone Forecaster is most effective on daily and weekly charts where statistical volatility models are more reliable. For lower timeframes, consider shortening the lookback periods. Always use this indicator as part of a comprehensive trading plan that includes other forms of analysis.
Fear & Greed [theUltimator5]This indicator attempts to replicate CNN's Fear & Greed Index methodology to measure market sentiment on a scale from 0-100. It combines seven key market components into a single sentiment score, where lower values indicate fear and higher values indicate greed.
Note: It is impossible to perfectly replicate the true Fear & Greed indicator due to data limitations, so this indicator attempts to best replicate the output for each of the (7) components using available data.
The uniqueness of this indicator comes from the calculation methods for the 7 components as well as the visual representation of the data, which includes a table and selectable plots for each of the 7 components which make up the overall sentiment. Existing variants of the Fear & Greed Index have substantial flaws in the calculations of several of the components which result in warped final sentiment numbers. This indicator attempts to better track all 7 components and provide a closer model to the actual Fear & Greed index.
Here are the seven components and a brief description of how each are calculated:
1. Market Momentum
Calculation: S&P 500 current price vs. 125-day moving average
Measures how far the market has moved from its long-term trend
Uses CNN-style Z-score normalization over 252 trading days
Higher values indicate strong upward momentum (greed)
Lower values suggest declining momentum (fear)
2. Stock Strength
Calculation: S&P 500 RSI scaled to 252-day range
Uses 14-period RSI of the S&P 500 index
Normalizes RSI values based on their 252-day minimum and maximum
Measures overbought/oversold conditions relative to recent history
Higher values indicate overbought conditions (greed)
Lower values suggest oversold conditions (fear)
3. Price Breadth
Calculation: Modified McClellan Oscillator
Primary: Uses NYSE advancing vs. declining issues with 7-day smoothing
Fallback: Compares sector performance (QQQ, IWM vs. SPY)
Measures how many stocks participate in market moves
Broader participation indicates healthier trends
Narrow breadth suggests selective or weak trends
4. Put/Call Ratio
Calculation: Inverted CBOE Put/Call ratios
Primary: CBOE Equity-only Put/Call ratio (more sensitive)
Fallback: CBOE Total Put/Call ratio
Uses 5-day average and applies CNN normalization
Higher put/call ratios indicate fear (inverted to lower scores)
Lower put/call ratios suggest complacency (higher scores)
5. Market Volatility
Calculation: VIX relative to its 50-day average
Compares current VIX level to its 50-day moving average
Measures deviation from normal volatility expectations
Higher VIX relative to average indicates fear (lower scores)
Lower relative VIX suggests complacency (higher scores)
6. Safe Haven Demand
Calculation: Stock returns vs. bond yield changes
Compares 20-day smoothed S&P 500 returns to Treasury yield changes
When stocks outperform bonds, indicates risk appetite (higher scores)
When bonds outperform stocks, suggests risk aversion (lower scores)
Uses Treasury 10-year yields as the safe haven benchmark
7. Junk Bond Demand
Calculation: High-yield bond spread analysis
Measures yield spread between junk bonds (JNK ETF) and Treasuries
Compares current spread to its 5-day average
Narrowing spreads indicate risk appetite (higher scores)
Widening spreads suggest risk aversion (lower scores)
The combined sentiment is plotted as a single line which changes color based on the current sentiment value.
0-25: Extreme Fear (Red) - Market panic, oversold conditions
26-45: Fear (Orange) - Cautious sentiment, bearish bias
46-55: Neutral (Yellow) - Balanced market sentiment
56-75: Greed (Light Green) - Optimistic sentiment, bullish bias
76-100: Extreme Greed (Green) - Market euphoria, potentially overbought
There are dashed lines to represent the threshold values for each of the sentiments to better visualize transitions.
The table displays each of the (7) components of the index and their respective values. The table can be toggled on/off and the position can be moved.
An optional secondary line can be toggled on to display (1) of the (7) components as a unique color and the component name and value will highlight on the table. The secondary line can be used to dig into the main driving forces behind the overall index value.
POC Migration Velocity (POC-MV) [PhenLabs]📊POC Migration Velocity (POC-MV)
Version: PineScript™v6
📌Description
The POC Migration Velocity indicator revolutionizes market structure analysis by tracking the movement, speed, and acceleration of Point of Control (POC) levels in real-time. This tool combines sophisticated volume distribution estimation with velocity calculations to reveal hidden market dynamics that conventional indicators miss.
POC-MV provides traders with unprecedented insight into volume-based price movement patterns, enabling the early identification of continuation and exhaustion signals before they become apparent to the broader market. By measuring how quickly and consistently the POC migrates across price levels, traders gain early warning signals for significant market shifts and can position themselves advantageously.
The indicator employs advanced algorithms to estimate intra-bar volume distribution without requiring lower timeframe data, making it accessible across all chart timeframes while maintaining sophisticated analytical capabilities.
🚀Points of Innovation
Micro-POC calculation using advanced OHLC-based volume distribution estimation
Real-time velocity and acceleration tracking normalized by ATR for cross-market consistency
Persistence scoring system that quantifies directional consistency over multiple periods
Multi-signal detection combining continuation patterns, exhaustion signals, and gap alerts
Dynamic color-coded visualization system with intensity-based feedback
Comprehensive customization options for resolution, periods, and thresholds
🔧Core Components
POC Calculation Engine: Estimates volume distribution within each bar using configurable price bands and sophisticated weighting algorithms
Velocity Measurement System: Tracks the rate of POC movement over customizable lookback periods with ATR normalization
Acceleration Calculator: Measures the rate of change of velocity to identify momentum shifts in POC migration
Persistence Analyzer: Quantifies how consistently POC moves in the same direction using exponential weighting
Signal Detection Framework: Combines trend analysis, velocity thresholds, and persistence requirements for signal generation
Visual Rendering System: Provides dynamic color-coded lines and heat ribbons based on velocity and price-POC relationships
🔥Key Features
Real-time POC calculation with 10-100 configurable price bands for optimal precision
Velocity tracking with customizable lookback periods from 5 to 50 bars
Acceleration measurement for detecting momentum changes in POC movement
Persistence scoring to validate signal strength and filter false signals
Dynamic visual feedback with blue/orange color scheme indicating bullish/bearish conditions
Comprehensive alert system for continuation patterns, exhaustion signals, and POC gaps
Adjustable information table displaying real-time metrics and current signals
Heat ribbon visualization showing price-POC relationship intensity
Multiple threshold settings for customizing signal sensitivity
Export capability for use with separate panel indicators
🎨Visualization
POC Connecting Lines: Color-coded lines showing POC levels with intensity based on velocity magnitude
Heat Ribbon: Dynamic colored ribbon around price showing POC-price basis intensity
Signal Markers: Clear exhaustion top/bottom signals with labeled shapes
Information Table: Real-time display of POC value, velocity, acceleration, basis, persistence, and current signal status
Color Gradients: Blue gradients for bullish conditions, orange gradients for bearish conditions
📖Usage Guidelines
POC Calculation Settings
POC Resolution (Price Bands): Default 20, Range 10-100. Controls the number of price bands used to estimate volume distribution within each bar
Volume Weight Factor: Default 0.7, Range 0.1-1.0. Adjusts the influence of volume in POC calculation
POC Smoothing: Default 3, Range 1-10. EMA smoothing period applied to the calculated POC to reduce noise
Velocity Settings
Velocity Lookback Period: Default 14, Range 5-50. Number of bars used to calculate POC velocity
Acceleration Period: Default 7, Range 3-20. Period for calculating POC acceleration
Velocity Significance Threshold: Default 0.5, Range 0.1-2.0. Minimum normalized velocity for continuation signals
Persistence Settings
Persistence Lookback: Default 5, Range 3-20. Number of bars examined for persistence score calculation
Persistence Threshold: Default 0.7, Range 0.5-1.0. Minimum persistence score required for continuation signals
Visual Settings
Show POC Connecting Lines: Toggle display of colored lines connecting POC levels
Show Heat Ribbon: Toggle display of colored ribbon showing POC-price relationship
Ribbon Transparency: Default 70, Range 0-100. Controls transparency level of heat ribbon
Alert Settings
Enable Continuation Alerts: Toggle alerts for continuation pattern detection
Enable Exhaustion Alerts: Toggle alerts for exhaustion pattern detection
Enable POC Gap Alerts: Toggle alerts for significant POC gaps
Gap Threshold: Default 2.0 ATR, Range 0.5-5.0. Minimum gap size to trigger alerts
✅Best Use Cases
Identifying trend continuation opportunities when POC velocity aligns with price direction
Spotting potential reversal points through exhaustion pattern detection
Confirming breakout validity by monitoring POC gap behavior
Adding volume-based context to traditional technical analysis
Managing position sizing based on POC-price basis strength
⚠️Limitations
POC calculations are estimations based on OHLC data, not true tick-by-tick volume distribution
Effectiveness may vary in low-volume or highly volatile market conditions
Requires complementary analysis tools for complete trading decisions
Signal frequency may be lower in ranging markets compared to trending conditions
Performance optimization needed for very short timeframes below 1-minute
💡What Makes This Unique
Advanced Estimation Algorithm: Sophisticated method for calculating POC without requiring lower timeframe data
Velocity-Based Analysis: Focus on POC movement dynamics rather than static levels
Comprehensive Signal Framework: Integration of continuation, exhaustion, and gap detection in one indicator
Dynamic Visual Feedback: Intensity-based color coding that adapts to market conditions
Persistence Validation: Unique scoring system to filter signals based on directional consistency
🔬How It Works
Volume Distribution Estimation:
Divides each bar into configurable price bands for volume analysis
Applies sophisticated weighting based on OHLC relationships and proximity to close
Identifies the price level with maximum estimated volume as the POC
Velocity and Acceleration Calculation:
Measures POC rate of change over specified lookback periods
Normalizes values using ATR for consistent cross-market performance
Calculates acceleration as the rate of change of velocity
Signal Generation Process:
Combines trend direction analysis using EMA crossovers
Applies velocity and persistence thresholds to filter signals
Generates continuation, exhaustion, and gap alerts based on specific criteria
💡Note:
This indicator provides estimated POC calculations based on available OHLC data and should be used in conjunction with other analysis methods. The velocity-based approach offers unique insights into market structure dynamics but requires proper risk management and complementary analysis for optimal trading decisions.
Benchmark Relative Performance BRPBenchmark Relative Performance (BRP) is a comprehensive technical analysis tool that compares any stock's performance against a chosen benchmark (QQQ, SPY, IWM, etc.) to identify outperformance and underperformance patterns.
Key Features:
Dual-line visualization: Shows both ticker and relative strength performance
Dynamic color coding: 5-level color system indicating performance strength
Customizable benchmark: Choose from any ticker via TradingView's symbol picker
Volume weighting: Optional volume analysis for stronger signal confirmation
Performance zones: Visual thresholds for strong/moderate performance levels
Compact info table: Real-time performance status and values
What It Shows:
Benchmark Performance Line (Blue): Shows your chosen benchmark's percentage performance
Relative Strength Line (Color-coded): Shows how much the ticker outperforms/underperforms
Fill Area: Visual gap between ticker and benchmark performance
Performance Zones: Dotted lines marking significant performance thresholds
Color System:
Green: Strong outperformance (above custom threshold)
Lime: Standard outperformance
Yellow: Neutral/Equal performance
Orange: Standard underperformance
Red: Strong underperformance (below custom threshold)
Best Used For:
Stock selection and rotation strategies
Sector/ETF relative strength analysis
Identifying momentum shifts vs benchmarks
Portfolio performance evaluation
Market timing based on relative performance
Settings:
Customizable lookback period (default: 20)
Adjustable strong performance threshold (default: 5%)
Optional volume weighting factor
Full table customization (position, colors, fonts)
Performance display (percentage or decimal)
Perfect for traders and investors who want to identify stocks showing relative strength or weakness compared to major market benchmarks.
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛